package cn.dxs.adt.bean;

import android.graphics.drawable.Drawable;

import org.litepal.crud.LitePalSupport;

import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class AppInfo extends LitePalSupport implements Comparable<AppInfo> {

    public Drawable appIcon;//图标
    public String appName;//名称
    public String packageName;//包名
    public String versionName;//版本号
    public int versionCode;//Version Code
    public String stub;// 加固类型

    public String minSdkVersion;//最低兼容SDK版本
    public String targetSdkVersion;// 目标SDK版本
    public int UID;//UID
    public boolean isSystem;//系统应用

    public String apkPath;//Apk路径
    public String apkSize;//Apk大小
    public String sig;// 签名
    public String MD5;//签名MD5
    public String SHA1;//签名SHA1
    public String SHA256;//签名SHA256
    public String signatureOwner;//签名所有者
    public String signaturePublisher;//签名发布者
    public String signatureSerialNumber;//签名序列号
    public String signatureAlgorithmName;//签名算法名称
    public String signatureVersion;//签名版本
    public String signatureExpiryDateStart;//有效期开始日期
    public String signatureExpiryDateEnd;//有效期截止日期
    public String nativePath;//Native库路径
    public String appDataDirectory;//应用数据目录

    public String mainEntryClassName;//主入口类
    public String applicationClassName;//Application类名
    public String mainCPUABI;//主CPU Abi

    public String firstInstallTime;//首次安装时间
    public String lastUpdateTime;//最近升级时间
    public long lfirstInstallTime;//首次安装时间
    public long llastUpdateTime;//最近升级时间

    public List<String> requestedPermissionInfo = new ArrayList<>();
    public List<String> activityInfo = new ArrayList<>();
    public List<String> serviceInfo = new ArrayList<>();
    public List<String> receiverInfo = new ArrayList<>();
    public List<String> providerInfo = new ArrayList<>();

    public boolean isCocos2djs = false;// 是否cocos2djs
    public Map<String, String> metaData = new HashMap<>();// meta-data数据集
    public Map<String, String> usesLibrary = new HashMap<>();// uses-library数据集

    @Override
    public int compareTo(AppInfo o) {
        try {
            // 取得比较对象的汉字编码，并将其转换成字符串
//            String s1 = new String(this.appName.getBytes("GB2312"), "ISO-8859-1");
//            String s2 = new String(o.appName.getBytes("GB2312"), "ISO-8859-1");
            String s1 = new String(this.appName.getBytes("GBK"), "ISO-8859-1");
            String s2 = new String(o.appName.getBytes("GBK"), "ISO-8859-1");
            // 运用String类的 compareTo（）方法对两对象进行比较
            return s1.compareTo(s2);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return 0;
    }
}
